/**
 * Alfresco Core REST API
 * Provides access to the core features of Alfresco.  This API uses the term **entity** to refer to an object in an Alfresco repository. An **entity** is of a specific **type**, and has a unique **id**.  * The **id** of an entity of type **node** is the **NodeRef** with the `workspace://SpacesStore` prefix removed. * The **id** of an entity of type **site** is the site's short name. * The **id** for an entity of type **person** is the person's username. * The **id** for an entity of type **group** is the group's short name. 
 *
 * OpenAPI spec version: 1
 * 
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.alfresco.client.api.core.model.representation;

import java.util.Objects;

import com.google.gson.annotations.SerializedName;

/**
 * Group
 */
public class GroupRepresentation
{
    @SerializedName("id")
    private String id = null;

    @SerializedName("displayName")
    private String displayName = null;

    @SerializedName("isRoot")
    private Boolean isRoot = true;

    /**
     * Get id
     * 
     * @return id
     **/
    public String getId()
    {
        return id;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    /**
     * Get displayName
     * 
     * @return displayName
     **/
    public String getDisplayName()
    {
        return displayName;
    }

    public void setDisplayName(String displayName)
    {
        this.displayName = displayName;
    }

    /**
     * Get isRoot
     * 
     * @return isRoot
     **/
    public Boolean getIsRoot()
    {
        return isRoot;
    }

    public void setIsRoot(Boolean isRoot)
    {
        this.isRoot = isRoot;
    }

    @Override
    public boolean equals(Object o)
    {
        if (this == o) { return true; }
        if (o == null || getClass() != o.getClass()) { return false; }
        GroupRepresentation group = (GroupRepresentation) o;
        return Objects.equals(this.id, group.id) && Objects.equals(this.displayName, group.displayName)
                && Objects.equals(this.isRoot, group.isRoot);
    }

    @Override
    public int hashCode()
    {
        return Objects.hash(id, displayName, isRoot);
    }

    @Override
    public String toString()
    {
        StringBuilder sb = new StringBuilder();
        sb.append("class Group {\n");

        sb.append("    id: ").append(toIndentedString(id)).append("\n");
        sb.append("    displayName: ").append(toIndentedString(displayName)).append("\n");
        sb.append("    isRoot: ").append(toIndentedString(isRoot)).append("\n");
        sb.append("}");
        return sb.toString();
    }

    /**
     * Convert the given object to string with each line indented by 4 spaces
     * (except the first line).
     */
    private String toIndentedString(Object o)
    {
        if (o == null) { return "null"; }
        return o.toString().replace("\n", "\n    ");
    }
}
